home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / prg_basi / bltq127.zip / !HISTORY next >
Text File  |  1996-11-12  |  15KB  |  456 lines

  1. Bullet History
  2. --------------
  3. 31-May-96
  4. Bullet 1.27, All
  5.  
  6. If non-unique index file (DUPS_ALLOWED), UpdateXB would overwrite memory at
  7. DGROUP:0264 for 3 bytes; at 0268 for 1 byte, and at 0294 for 4 bytes.  The
  8. value written was 0.  The bug did not manifest itself otherwise, and updates
  9. worked.  This bug did not present itself if the index was for unique keys.
  10.  
  11. --------------
  12. 7-Jul-95 (JPL)
  13. Bullet 1.25 DOS/Windows
  14.  
  15. If collate sequence table ended with a weight other than 255, 
  16. reindexing may have left an empty file (if the last weight were
  17. less than any key's starting character's weight); LastKey may
  18. also not have actually been positioned to the last key.  The
  19. extreme case of this is a weight of 01 used for code 255.  Fixed
  20. in both DOS and Windows versions.
  21.  
  22. Consolidated memory allocation and extended file handle routines
  23. so that no special Borland-only version of Bullet is required.
  24. BULLET.LIB is for any standard object compiler.
  25.  
  26. Flushing now forces directory entry data to be updated.
  27.  
  28. I've seen MS-DOS 6.20 (at least, and Windows standard mode, too)
  29. not return valid collate-sequence table data (i.e., it may
  30. return garbage).  This has been reproduced on the US version of
  31. 6.20 with the following:
  32.  
  33. In config.sys:
  34.   country=41,850,c:\dos\country.sys
  35.   device=c:\dos\display.sys con=(ega,850,1)
  36.  
  37. In autoexec.bat:
  38.   nlsfunc
  39.   mode con cp prep=((850)c:\dos\ega2.cpi)
  40.   chcp 850
  41.  
  42. The data returned is pure garbage, though the check bytes check.
  43. The included NLSINFO.EXE program should be run on any machine
  44. where you think this might be happening.  If so, you can specify
  45. your own, known-to-be-good collating table.  See BC_LAI11.C for
  46. an example.
  47.  
  48. ---------
  49. 29-Jun-95
  50. CZ 1.22 for DOS
  51.  
  52. Changes to CZ include install message if mouse save buffer requirements too
  53. big; load image now slightly larger than in-memory image for easier loadhigh;
  54. stack increased from 256 to 1KB; mouse save buffer increased from 512 to 1KB.
  55.  
  56. --------
  57. 2-Mar-95 (AA)
  58. Bullet 1.24 Windows
  59.  
  60. UnlockDataXB GPF fixed.
  61.  
  62. ----------
  63. Doc Update
  64.  
  65. To allow for more open files, set IP.JFTmode=1.  Borland compiler users need
  66. to get the BLTBORUP.ZIP file to use this feature.
  67.  
  68. ----------
  69. Doc Update
  70.  
  71. The following error is not listed in the CZ documentation.  As an unsigned
  72. number, it's value is 65533:
  73.  
  74. ERR_UNEXPECTED_EOF =-3 ;unexpect EOF (actual read <> bytes asked)
  75.  
  76. This would indicate a corrupt file, generally a DBF problem.  See the Bullet
  77. conference message base under "ERROR -3" for more information.
  78.  
  79. ----------
  80. Doc Update
  81.  
  82. The following anomoly occurs when stepping through BASIC code in the QB, QBX,
  83. or VBDOS enviroment:
  84.  
  85. .Occasionally get total mixup/overwrite of VB source code when "stepping"
  86. .through the code as check/debug.
  87.  
  88. This is because the VBDOS environment moves memory whenever it wants to
  89. (when it has control, such as after each time you step).  If memory is
  90. moved between the assignment of VARSEG/VARPTR (AP.recPtrSeg = VARSEG(dataRec),
  91. for example), then that assignment is no longer valid.  Do not "step" through
  92. code that makes assignments and then calls Bullet.  Once you use VARSEG/VARPTR,
  93. and up through the use of that by the Bullet call (call BULLET(AP)), do not
  94. allow the interpreter to take control.  This is easily accomplished by setting
  95. a breakpoint AFTER the Bullet call.  This applies to QB and QBX, as well.
  96.  
  97. ------------
  98. 22-Feb-94-pn
  99. (no version change)
  100. Updated NOATEXIT.OBJ file
  101. Added WCATEXIT.OBJ file for Watcom compilers (see WCATEXIT.DOC)
  102.  
  103. --------
  104. 2-Feb-95
  105. Bullet 1.23 Windows
  106.  
  107. UpdateXB GPF fixed.
  108. Modified NEW_HDR.ZIP files.
  109.  
  110. --------------
  111. 19-Jan-95 (LO)
  112. Bullet 1.20-1.22 Windows/DOS
  113.  
  114. LockDataXB GPF fixed (AA). (1.22)
  115. CopyDHXB would fail no matter what you did. (1.22)
  116. CreateKXB would fail if ds!=ss. (1.21)
  117. Modified NEW_HDR.ZIP .h file. (1.20)
  118. Fixed AtExitXB bug where AtExitXB would fail if ExitPack (EP) structure
  119. was not in DGROUP.  Other more minor things were changed, including C structure
  120. names, updating of DOS versions to match Windows version.  OS/2 versions
  121. in testing, both 16- and 32-bit versions for C, C++, and BASIC 7.
  122.  
  123. Null pointers are checked for on the high-level xaction routines, and return
  124. the following if NULL:
  125.  
  126. ERR_NULL_RECPTR =236    ;null record pointer passed to Bullet
  127. ERR_NULL_KEYPTR =237    ;null key pointer passed to Bullet
  128.  
  129. -----------
  130. 5-Jan-95-chh
  131. Bullet 1.20 (all versions)
  132.  
  133. Sync all versions to 1.20 (including upcoming OS/2)
  134.  
  135. Fixed AtExitXB bug (LO) where AtExitXB would fail if ExitPack (EP) structure
  136. was not in DGROUP.  Other more minor things were changed, including C structure
  137. names, updating of DOS versions to match Windows version.  OS/2 versions
  138. in testing, both 16- and 32-bit versions for C, C++, and BASIC 7.
  139.  
  140. Null pointers are checked for on the high-level xaction routines, and return
  141. the following if NULL:
  142.  
  143. ERR_NULL_RECPTR =236    ;null record pointer passed to Bullet
  144. ERR_NULL_KEYPTR =237    ;null key pointer passed to Bullet
  145.  
  146. -------------
  147. 26-Dec-94-chh
  148. Bullet for Windows 1.12
  149. Memory leak
  150.  
  151. Fixed Windows memory leak.
  152.  
  153. --------------
  154. 23-Dec-94 (GR)
  155. Issued 1.08a.1 for PowerBASIC 3.
  156.  
  157. PB3 linker would fail to properly fix-up "SEG DATA" references when $LINK'ing
  158. external units that make use of ON LOCAL ERROR/RESUME.  Fix required manual
  159. fix-ups, done at run-time.  Sample included in X108A1.ZIP.  CloseFileDOS
  160. always returned 3E01h; now returns 0 unless bad handle.
  161.  
  162. Added TROUBLE.SHT info file, originally in Bullet for Windows .HLP.  Also
  163. added the file to BLTC18Z.ZIP and BLTQ18.ZIP.
  164.  
  165. ---------------
  166. 18-Nov-94 (MGr)
  167. Bullet for Windows 1.11
  168. GetWinFlags, unreferenced error
  169.  
  170. Borland TLINK was not able to reference GetWinFlags.  Now using GETWINFLAGS.
  171. Added #ifndef __BULLET_H to bullet.h.  No other changes.
  172.  
  173. ---------
  174. 10-Oct-94
  175. Issued 1.08a for PowerBasic 3.
  176. Bullet for PB3.
  177.  
  178. ---------
  179. 18-Aug-94
  180. Issued 1.10.
  181. Bullet for Windows.
  182.  
  183. --------------
  184. 11-Feb-94 (AJ)
  185. Issued 1.08a.
  186.  
  187. ReindexXB would fail with error 204 (empty file) on reindex attempt of a
  188. DBF with 0 physical records. This problem had been reported earlier but
  189. was overlooked.
  190.  
  191.  
  192.  
  193. 04-Feb-94 (MG)
  194. Issued 1.08.
  195.  
  196. Bug in PackRecordsXB where, if all records in an internal buffer were marked
  197. as deleted, the file would be truncated at start of buffer's position. This
  198. caused a -3 error (UNEXPECTED EOF since the DBF file is both read and written
  199. to by Bullet). Always do a BackupFileXB to an archive drive before packing
  200. your DBFs.
  201.  
  202. Sync'ed the BASIC and DOS C versions and other minor updates.
  203.  
  204.  
  205. --------------
  206. 22-Dec-93 (HV)
  207. Issued 1.07c (shareware) and 1.07d (registered)
  208. Correction to BC_LAI10.C in v1.07b.
  209.  
  210. The testrec.codename is declared as char[10]. But just before level 1200:
  211.  
  212.    strcpy(testrec.codenam, "xxxSAMExxx");
  213.  
  214. This little string adds up to a total length of 10. Strcpy ADDS a '\0' to the
  215. string so the total length becomes 11! Bad move!
  216.  
  217. Also the line at level 1312:          (long) *keybuffer = 5L;  is not tolerated
  218. by Borland C++ 3.1. It should read: *((long *)keybuffer) = 5L;
  219.  
  220.  
  221. ---------------
  222. 20-Oct-93 (chh)
  223. Issued 1.07b.
  224. Addendum to 1.07a (the 01-Oct-93 version).
  225. Was released without addendum notice. Re-released as 1.07b (BLTC17B.ZIP).
  226. Also, Borland patch is now plug-n-play with inclusion of TLIB tool.
  227.  
  228.  
  229. ---------------
  230. 01-Oct-93 (chh)
  231. Addendum to 1.07.
  232.  
  233. While I may have fixed the bugs in BC_LAI10.C (see below), I didn't seem
  234. to have updated the archive with it. The fixed BC_LAI10.C is included in
  235. the current archive, and is available separately. Still, no bets it's 100%.
  236.  
  237. Also, current versions of TLIB (those after 3.00) are not working as
  238. expected when using the Borland patch. Either use MS LIB or download
  239. TLIB300.ZIP from the Main Board.
  240.  
  241.  
  242. --------------
  243. 31-Aug-93 (ES)
  244. Issued 1.07 (currently a DOS C-only release).
  245.  
  246. Bugs in the C version of Bullet when the Borland patch was applied were killing
  247. nearly everyone concerned with Bullet, Borland, and the large memory model.
  248.  
  249. Fixed a few bad bugs in the BC_LAI10.C example (pretty obvious as they were).
  250.  
  251. BULLET.H file updated a bit with some new stuff by ES.
  252.  
  253. Added _max vars to MEMXB/MEMCXB.ASM to limit amount of memory allocated, if
  254. so desired (limits in place in MEMCXB for Borland patch, no limit otherwise).
  255.  
  256.  
  257. --------------
  258. 04-Aug-93 (MG)
  259. Issued 1.06.
  260.  
  261. Fixed PackRecordsXB bug where, if the number of records in the DBF were
  262. greater than 1 internal buffer's worth, but less than 2 buffer's worth,
  263. the routine would typically error out with a -2, UNEXPECTED EOF.
  264.  
  265. Altered UNEXPECTED EOF error code from -2 to -3.  DISK FULL remains -2.
  266.  
  267.  
  268. --------------
  269. 31-Jul-93 (DR)
  270. Internal 1.05.
  271.  
  272. Fixed UpdateXB CPU fault error when running BULLET in protected-mode. Fault
  273. occured only in protected-mode and has no impact on DOS programs, whatsoever.
  274. Also fixed ExitXB bug when ExitXB called BreakXB at shutdown (typically not
  275. a problem).
  276.  
  277.  
  278. --------------
  279. 27-Jul-93 (MG)
  280. Issued 1.04.
  281.  
  282. Bug with PackRecordsXB where, if from the last record in the internal buffer
  283. backward, there are no records that are un-deleted (i.e., all records past
  284. "any" point in the internal buffer are all deleted), then that buffers' worth
  285. of records are not written to disk. This situation would cause data loss. Fixed.
  286. Fixed typographical/syntax errors in BLTNETWK.TXT (originally added 14-Jul-93).
  287. For users with BULLET 1.03, get file BPAT104.ZIP (24K). For users with previous
  288. versions, get either CBULLET.ZIP or QBULLET.ZIP. See the BULLET conference
  289. files' listing for additional information.
  290.  
  291.  
  292. ---------------
  293. 22-July-93 (DS)
  294. Issued 1.03a.
  295.  
  296. Fixed documentation error in Borland C compiler patch that was causing patch to
  297. be ignored. Updated all distribution packages. Also, BLT13BOR.ZIP, containing
  298. updated patch documentation as well as an already-patched large model BULLET
  299. library, is available in the BULLET conference download area. BLT13BOR.ZIP
  300. is also included in the BULLET registered-version packages.
  301.  
  302.  
  303. ----------------
  304. 14-July-93 (chh)
  305. No version change; new timestamp of: 14-Jul-93  1:03a
  306.  
  307. Supplemental Network Information added to all distribution packages. Details
  308. network routines available in BULLET and their operatation. Also available as
  309. BLTNETWK.ZIP (4K) from Main Board Files and BULLET conference download area.
  310.  
  311.  
  312. --------------
  313. 22-Apr-93 (MG)
  314. Issued 1.03.
  315.  
  316. Bug with ReindexXB when followed up with InsertXB with a non-unique
  317. index file causing sporadic 201 error. Fixed.
  318.  
  319. CZ.HLP updated with new BBS support number and other minor changes.
  320. Shareware versions BLTQ13.ZIP and BLTC13.ZIP released.
  321.  
  322.  
  323. --------------
  324. 24-Aug-92 (WS)
  325. Issued 1.02.
  326.  
  327. Bug with CreateKeyXB (parsing the key expression) that would occur if making
  328. an EXE file from the environment. Would probably also occur if linking to
  329. other libraries if those libraries where place before BULLET.LIB on LINK's
  330. Libraries: prompt. Caused by using OFFSET DGROUP:kfKeyExpression--the DGROUP
  331. specifier was not intended since kfKeyExpression is used to compute the offset
  332. relative a dynamically allocated segment base, not DGROUPs base. Since LINK
  333. was making adjustments for DGROUP (some of it already having been used by
  334. those libraries appearing before) the key expression offset was not where it
  335. should have been (if BULLET.LIB was not first the first library specified)--
  336. --the parser was parsing thin air, resulting in error 240. Fixed.
  337.  
  338. CZ.COM changes: CZ.COM consolidated with CZXT.COM. CZ now bumps InDOS flag on
  339. popup for MT environments. Keypad-plus key functions as keypad-enter. Keypad-5
  340. moves cursor to center of screen. The mouse is software reset at popup.
  341.  
  342. Shareware release of C version of BULLET 1.02 (BLTC12.ZIP). BASIC version named
  343. BLTQ12.ZIP (formerly BULETQ10.ZIP). Only difference is the CZ.HLP file and the
  344. sample programs (or lack of in the case of BLTC12). Second shareware release
  345. for BLTQ12. First for BLTC12.  (Archive extensions may vary.)
  346.  
  347.  
  348. ---------------
  349. 21-Aug-92 (chh)
  350. Issued 1.01b.
  351.  
  352. Added single-record locking to LockDataXB (and unlocking, of course). Requires
  353. that AP.RecNo be set to record number to lock. To lock the entire data file set
  354. AP.RecNo=0. Better still, use LockXB when locking more than a single record.
  355. See LockDataXB in CZ for more. For most purposes the LockXB full-region locks
  356. is the best way to go. Added BB_RKL10.BAS showing single-record locks in action.
  357.  
  358. Made some changes to CZ.HLP. Also added HLP2TXT.EXE to strip off the index data
  359. at the front of CZ.HLP. Makes it easier to import into WPs or even print
  360. directly. Creates CZ.TX!. About 5800 lines with 20 or so blank lines at the end
  361. (filler lines).
  362.  
  363.  
  364. -----------------
  365. 28-July-92. (chh)
  366. Issued 1.01a.
  367.  
  368. In ReadKHXB the cache buffer needed to be invalidated since the cache buffer
  369. is invalid once control is released/made available to another process.
  370.  
  371. Added !README2 text file explaining value (status=) returned from
  372. transaction-based routines.
  373.  
  374.  
  375. ----------------
  376. 24-July-92. (BJ)
  377. Issued 1.01
  378.  
  379. In PackRecordsXB, if the last physical record is the only record to be
  380. deleted, it won't. Fixed.
  381.  
  382. In ReindexXB, the index cache buffer was not invalidated after reindex which
  383. means that a subsequent request may be satisfied from the invalid cache
  384. (causing spurious 224 errors from no longer existing data records). Fixed.
  385.  
  386. CZ.HLP BULLET error 223 should be 224 (223 is the one reserved). Fixed.
  387.  
  388.  
  389. -------------
  390. 23-July-92 ()
  391.  
  392. Added CZXT.COM for PCs and early XTs. Popup text does not appear on the early
  393. machines. Fixed.
  394.  
  395.  
  396. ----------------
  397. 22-July-92. (CH)
  398.  
  399. In OpenKXB, an invalid xbHandle link will return a negative 222 (-222). Fixed.
  400.  
  401. CZ.HLP lists OpenPack.xbHandle as OpenPack.XBlink. xbHandle will be used.
  402.  
  403.  
  404. ----------
  405. 16-June-92.
  406. Issued 1.00.
  407.  
  408. =========================
  409. Miscellaneous Info/Errata
  410. =========================
  411. 1. Error 240
  412. 2. Specifying a Binary Key Search Criterion
  413. 3. Enumerator word specification
  414.  
  415. ------------
  416. 1. Error 240
  417.  
  418. That fieldname descriptors must be 0-filled is not in the CZ docs of the
  419. DOS C version.  You must 0-fill the fieldList.fieldname members or an
  420. error 240 will be returned if you attempt to index on one of the fields.
  421. .fieldname is an 11-byte field (10 usuable characters with byte 11 always=0):
  422.  
  423.     :
  424.   fieldList[0].fieldname = "LASTN\0\0\0\0\0"; /* 5+5+\0=11 bytes */
  425.   fieldList[0].fieldtype = "C";
  426.     :
  427.  
  428. See GetDescriptorXB in the CZ doc file for more.
  429.  
  430. -------------------------------------------
  431. 2. Specifying a Binary Key Search Criterion
  432.  
  433. Use MKI$ or MKL$ to cast the binary value to a string.  For example:
  434.  
  435.     DIM SHARED keybuffer AS STRING * 64
  436.       :
  437.     AP.keyptrOff = VARPTR(keybuffer)
  438.     AP.keyptrSeg = VARSEG(keybuffer)
  439.     'then use MKL$ to set the buffer with string type, as in
  440.     keybuffer = MKL$(5&)
  441.  
  442. For C, the technique is the same.  For example:
  443.  
  444.     char keybuffer[64];
  445.       :
  446.     AP.keyptr = keybuffer;
  447.     *((long *)keybuffer) = 5L;
  448.       :
  449.  
  450. 3.  The enumerator word attached to non-unique keys is a two-byte word
  451.     in high byte/low byte order.  The first such key is 00/00, with any
  452.     following exact matches to that key as 00/01, and so on.  Each key
  453.     root would have have its own enumerator series, so ABC\0\0, BCD\0\0,
  454.     and so on.
  455.  
  456.